<%
    incluePageSecure = true; // 防止此页面被直接调用
%>
<div>
    <div class="page" id="docs_art_add">
            <h2>添加文档文章</h2>

             <form class="frm" method="post" action="execute.aspx?cmd=subsys/art/add">
                分类: <select name="catId" class="selectOptions"></select>
                <br />标题: <input name="title" type="text" />
                <br />内容: <textarea name="content" rows="6" cols="50" class="artTextarea"></textarea>
                <br />作者: <input name="author" type="text" />
                <br />      <input type="submit" value="提交" />
                <p><strong>操作提示:</strong>  编辑比较多的内容时，应该先输入标题，然后提交，然后在修改中进行详细的编辑！</p>
            </form>
    </div>

    <div class="page" id="docs_art_remove">
        <h3>确定删除选中的文章？</h3>
        <input type="submit" value="确定" class="ok" />
        <input type="button" value="取消" class="cancel" />
    </div>

    <div class="page" id="docs_art_modify">

            <h2>修改文档文章</h2>

             <form class="frm" method="post" action="execute.aspx?cmd=subsys/art/modify">
                <!--分类: <select name="catId" class="selectOptions"></select>-->
                            <input name="id" type="hidden" value="" />
                <br />标题: <input name="title" type="text" value="" />
                <br />内容: <textarea name="content" rows="6" cols="50" class="artTextarea"></textarea>
                <br />作者: <input name="author" type="text" value="" />
                <br />      <input type="submit" value="保存" />
                <p><strong>操作提示:</strong>  编辑比较多的内容时，应该常按保存按钮，以免因意外造成大量的内容丢失！</p>
            </form>
    </div>

    <div class="page" id="docs_art_move">
        <div>
            <h3>把选中的文章移动到分类:</h3> <select name="new_cat_id" class="selectOptions"></select>
        </div>
        <input type="submit" value="确定" class="ok" />
        <input type="button" value="取消" class="cancel" />
    </div>

    <div class="page" id="docs_art_detail">
        <div class="posNav"></div>
    </div>

    <div class="page" id="docs_art_list">
        <div class="posNav"></div>
    </div>
</div>

<script type="text/javascript">


//worksJson
(function($){

    var Article = window.Article = function( conf )
    {
        this.file = conf.file;
        this.view = conf.view;
        this.ops  = conf.ops;

        this.catId = 0;  //维持在某一个分类下工作,在列表的是填充此属性
    }

    Article.fn = Article.prototype =
    {
        // add
        add_ui : function(){
            var page = get_popup( "add",{top:'10%',left:'30%',width:'640px'} );

            frm = page.find('.frm');
            page.find('[name="cat_id"]').val( this.catId );

            var t = this;
            frm.attr("action", this.build_server_cmd( "add","" ) );
            frm.submit(function(){          // 监听提交
                t.add_submit_callback();
            });
        },
        add_submit_callback : function()
        {
            $("#uploading_add_author").html('<img src="images/loading.gif">正在添加,请稍等...');
        },

        // remove
        remove_ui : function(){
            var page = get_popup( "remove" );

            var frm = Docs.ui.frame.find(".frm_list");    // 注意,这里找的是列表页中的Form
            frm.attr("action", this.build_server_cmd("remove","") );
            
            var t = this;
            frm.ajaxSubmit('json',function(json){     //绑定提交事件
                t.remove_submit_callback(json,frm);
            });

            page.find(".ok").click( function(){    // 由于这里提交的是别人的表单,所以必须去掉默认提交
                page.parent().remove();
                frm.submit();
                return false;
            });
        },
        remove_submit_callback : function( json,frm )
        {
            var dat;
            if( json.error ){
                dat = json.error;
            }else if(json.msg){
                dat = json.msg;
                frm.removeChecked( 2 );
            }else{
            		dat = "未知的错误";
            }

            App.ui.popupAlert( dat );
        },

        // Modify
        modify_request : function( id )
        {
            var t = this;
            $.getJSON( this.build_server_cmd( "details","&id="+id ),function(json){
                t.modify_ui( json );
            });
        },
        modify_ui: function( json )
        {   
            var page = get_popup( "modify",{top:'10%',left:'30%',width:'640px'} );

            frm = page.find('.frm');
            frm.find('input[@name="id"]').val( json.id );
            frm.find('input[@name="name"]').val( json.name );
            frm.find('[@name="intro"]').val( json.intro );
            frm.find('input[@name="author"]').val( json.author );
            frm.find('input[@name="current_photo"]').val( json.photo );
            frm.find('input[@name="current_thumb"]').val( json.thumb );
            frm.find(".photo").attr( "src",json.thumb );

            frm.attr("action", this.build_server_cmd( "modify","" ) );

            var t = this;
            frm.submit(function(){                 // 绑定提交事件
                t.modify_submit_callback();
            });
        },
        modify_submit_callback : function()
        {
            $("#uploading_modify_works").html('<img src="images/loading.gif">正在修改,请稍等...');
        },

        // Move
        move_request : function()
        {
            var t = this;
            $.getJSON( Docs.fn.worksCat.build_server_cmd( "list","&id=0" ),function(json){
                t.move_ui( json );
            });
        },
        move_ui: function( json ){						
						var page = get_popup( "move" );
						
            var t = this;
            var frm = Docs.ui.frame.find(".frm_list");
            var newParent = page.find('[@name="new_parent_id"]').append( Docs.fn.worksCat.get_select_options_list(json) );

						frm.attr("action", this.build_server_cmd( "move","" ) );
            frm.ajaxSubmit('json',function(json){
                t.move_submit_callback( json );
            });

            page.find(".cancel").click( function(){disp.remove(); return false;  });   //绑定取消按钮
            page.find(".ok").click( function(){
            		frm.find('[@name="new_parent_id"]').val( newParent.val() );
            		frm.submit();
            		return false;
            });
        },
        move_submit_callback : function( json )
        {
            var dat;
            if( json.error ){
                dat = json.error;
            }else if(json.msg){
                dat = json.msg;
            }else{
                dat = "未知的错误";
            }

            App.ui.popupAlert( dat );
        },

        move_ui_to_author: function( json ){
            var page = get_popup( "move_to_author" );

            var t = this;
            var frm = Docs.ui.frame.find('.frm_list');
            var newParent = page.find('[@name="new_parent_id"]');

						frm.attr("action", this.build_server_cmd( "moveToAuthor","" ) );
            frm.ajaxSubmit('json',function(json){
            		var dat;
            		if( json.error ){
            		    dat = json.error;
            		}else if(json.msg){
            		    dat = json.msg;
            		}else{
            		    dat = "未知的错误";
            		}

            		App.ui.popupAlert( dat );
            });

            page.find(".ok").click( function(){
            		frm.find('[@name="new_parent_id"]').val( newParent.val() );
            		frm.submit();
            		return false;
            });
        },

				// Details
        get_details_request : function( id )
        {
            var t = this;
            $.getJSON( t.build_server_cmd("details","&id="+id), function(json){
                t.get_details_ui( json );
            });
        },
        get_details_ui: function( json )
        {
            var page = get_popup( "details",{top:'10%',left:'30%',width:'640px'} );

            page.append( '\
<div>\
    <p><img src="{1}" /></p>\
    <h1 class="title">标题:{0}</h1>\
    <div class="intro">介绍:{2}</div>\
    <div class="author">作者:{3}</div>\
</div>'
.format(json.name,json.photo,json.intro,json.author));

        },

        get_list_request : function( query )
        {
            var t = this;

            // 读取数据
            $.getJSON( this.build_server_cmd(query.toString()+"&pageSize=12"), function(json){
                t.get_list_ui(json);
            });

        		this.catId = query["catId"];
        },
        get_list_ui: function( json )
        {
            // 读取模板,并添加到可视区域
            var page = get_page( "list" );
            Docs.ui.frameR.append( page );

            // 格式化数据
            var ss = new Array();
            ss.push('<form class="frm_list" method="post" action="">');
            ss.push('<ul class="list-pic">');
            var items = json.list;
						if( json.error ){
								page.append( json.error );
						}
            else if( 0<items.length )
            {
                for( var i=0,len=items.length;i<len;i++ ){
                    ss.push( this.get_list_item(items[i]) );
                }
            }else{
                ss.push('<li>没有找到记录</li>');
            }
            ss.push('</ul>');
            ss.push('<input name="new_parent_id" type="hidden" />');  //用于移动分类
            ss.push('</form>');

            var p = json.pagination;
            if( p ){

                ss.push( '<div class="clear">'+$.pageNav( p.recordCount,p.pageCount,p.currentPage,this.build_client_cmd("list","&catId="+this.catId+"&page=0") )+'</div>' );
            }
            page.append( ss.join('\n') );

            // 绑定事件
            var t = this;
            $(".btn_add").click(function(){ t.add_ui(); return false;  });       // 绑定添加事件
            $(".btn_remove").click(function(){ t.remove_ui(); return false;} );  // 绑定删除事件
            $(".btn_move").click(function(){ t.move_request();return false; });  // 绑定移动事件
            $(".btn_move_to_author").click(function(){ t.move_ui_to_author();return false; });  // 绑定移动事件
            $(".btn_check").checkAll( page.find("input[@name='ids']") );  // 绑定 全选|全不选 事件
            $(".btn_modify").click(function(){
                var li = $(this);
                t.modify_request( li.siblingVal( "LI","ids" ) );
                return false;
            });
            $(".btn_details").click(function(){
                var li = $(this);
                t.get_details_request( li.siblingVal( "LI","ids" ) );
                return false;
            });
        },
        get_list_item : function( item )
        {
            return '\
<li>\
  <span>\
    <a href="#" class="btn_details" title="详细"><img src="{2}" /></a>\
  </span>\
  <span>\
    <input name="ids" type="checkbox" value="{0}" />\
  </span>\
  <span>\
    <span>ID:{0} <a href="#" class="btn_details">{1}</a></span>\
    <span><a href="#" class="btn_modify">修改</a></span>\
  </span>\
</li>'
.format( item.id,item.name,item.thumb );
        },
        ///////////////////////////////////////////////////////
        //Private Method///////////////////////////////////////
        ///////////////////////////////////////////////////////

        // 建立查询字符串
        // 这里有两个重载,(string,string) (string)
        build_server_cmd : function( str1,str2 )
        {
            return this.file.concat( "?",this.build_cmd(str1,str2) );
        },
        build_client_cmd : function( str1,str2 )
        {
            return "#s=".concat( App.current.query["s"],"&",this.build_cmd(str1,str2) );
        },
        build_cmd : function( str1,str2 )
        {
            if( 'undefined'!=typeof str2 ){
                return "view=".concat(this.view,"&op=",this.ops.art[str1],str2 );
            }else{
                return str1;
            }
        }
    }

    ///////////////////////////////////////////////////////
    //Private Method///////////////////////////////////////
    ///////////////////////////////////////////////////////

    // 返回jQuery对象
    var get_page = function( handler )
    {
        // 读取模板
        var page = $( "#".concat("docs_art_",handler) ).clone();
        //page[0].id = handler.concat( "_works_clone" );
        return page;
    }

    // 读取模板,创建一个弹出窗口,并把弹出窗口添加到可视区域
    var get_popup = function( handler,css )
    {
        var popup = App.ui.createPopup(css).append( get_page(handler) ).addClass( "museum_popup" );

        popup.find(".cancel").click( function(){  //绑定取消按钮
        		popup.parent().remove();
        		return false;
        });

        return popup;
    }
})(jQuery);
</script>